package com.platform.enums;

import com.platform.comm.constants.EnumOption;
import com.platform.comm.enums.IEnumOption;

import java.util.Arrays;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author liujizheng
 * @version 1.0
 * @ClassName PlanCategory
 * @Description 数据类型
 * @date 2021/9/6 10:53
 */
@EnumOption(name = "dataType")
public enum DataType implements IEnumOption<String> {
    /**
     * 主数据
     */
    MAIN("1", "主数据"),
    /**
     * 交易数据
     */
    TRADE("2", "交易数据"),
    /**
     * 参考数据
     */
    REFER("3", "参考数据"),
    /**
     * 分析数据
     */
    ANALYSIS("4", "分析数据"),

    /**
     * 其它数据
     */
    OTHER("99", "其它数据");


    private String key;
    private String title;

    DataType(String key, String title) {
        this.key = key;
        this.title = title;
    }

    /**
     * 枚举项 “键”
     *
     * @return key
     */
    @Override
    public String key() {
        return key;
    }

    /**
     * 枚举项 “值”
     *
     * @return value
     */
    @Override
    public String value() {
        return title;
    }

    /**
     * 枚举options
     *
     * @return
     */
    @Override
    public Map<String, String> enums() {
        return Arrays.stream(values()).collect(Collectors.toMap(IEnumOption::key, IEnumOption::value));
    }
}
